<?php

require_once ROOT . 'server/classes/arquitetura/entity/AbstractEntity.class.php';

class Usuario extends AbstractEntity {

    private $id;
    private $nome;
    private $sobrenome;
    private $sexo;
    private $email;
    private $dtNasc;
    private $senha;
    private $rand;
    private $ativo;
    private $updateDate;

    /**
     * Default Constructor.
     */
    public function __construct() {
        
    }

    /* Este atributo eh int(7) */

    public function setId($id) {
        $this->id = $id;
    }

    public function getId() {
        return $this->id;
    }

    /* Este atributo eh varchar(100) */

    public function setNome($nome) {
        $this->nome = $nome;
    }

    public function getNome() {
        return $this->nome;
    }

    /* Este atributo eh varchar(100) */

    public function setSobrenome($sobrenome) {
        $this->sobrenome = $sobrenome;
    }

    public function getSobrenome() {
        return $this->sobrenome;
    }

    /* Este atributo eh varchar(1) */

    public function setSexo($sexo) {
        $this->sexo = $sexo;
    }

    public function getSexo() {
        return $this->sexo;
    }

    /* Este atributo eh varchar(100) */

    public function setEmail($email) {
        $this->email = $email;
    }

    public function getEmail() {
        return $this->email;
    }

    /* Este atributo eh date */

    public function setDtNasc($dtNasc) {
        $this->dtNasc = $dtNasc;
    }

    public function getDtNasc() {
        return $this->dtNasc;
    }

    /* Este atributo eh varchar(255) */

    public function setSenha($senha) {
        $this->senha = $senha;
    }

    public function getSenha() {
        return $this->senha;
    }

    /* Este atributo eh int(4) */

    public function setRand($rand) {
        $this->rand = $rand;
    }

    public function getRand() {
        return $this->rand;
    }

    /* Este atributo eh varchar(1) */

    public function setAtivo($ativo) {
        $this->ativo = $ativo;
    }

    public function getAtivo() {
        return $this->ativo;
    }

    /* Este atributo eh timestamp */

    public function setUpdateDate($updateDate) {
        $this->updateDate = $updateDate;
    }

    public function getUpdateDate() {
        return $this->updateDate;
    }

    public function __toString() {
        return $this->getNome();
    }

    public function equals($obj) {
        if (empty($obj)) {
            return false;
        }
        if ($this->getId() == $obj->getId() && $this->getNome() == $obj->getNome() && $this->getSobrenome() == $obj->getSobrenome() && $this->getSexo() == $obj->getSexo() && $this->getEmail() == $obj->getEmail() && $this->getDtNasc() == $obj->getDtNasc() && $this->getSenha() == $obj->getSenha() && $this->getRand() == $obj->getRand() && $this->getAtivo() == $obj->getAtivo()) {
            return true;
        }
        return false;
    }

    public function cloneMe() {
        $newUsuario = new Usuario();
        $newUsuario->setId($this->getId());
        $newUsuario->setNome($this->getNome());
        $newUsuario->setSobrenome($this->getSobrenome());
        $newUsuario->setSexo($this->getSexo());
        $newUsuario->setEmail($this->getEmail());
        $newUsuario->setDtNasc($this->getDtNasc());
        $newUsuario->setSenha($this->getSenha());
        $newUsuario->setRand($this->getRand());
        $newUsuario->setAtivo($this->getAtivo());
        return $newUsuario;
    }

}

?>
